/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jam.sfcc.common.data;



import jam.sfcc.common.domain.Categoria;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

/**
 *
 * @author Josué
 */
public class CategoriaData extends BaseData{

    public CategoriaData(String userName, String password) {
        super(userName, password);
    }
    public void insertarCategoria(Categoria categoria) throws SQLException{
        String sqlInsert="INSERT INTO Categoria (nombre_categoria) "
                       + "VALUES('"+categoria.getNombreCategoria()+"')";
        Connection conexion= this.getConnection();
        PreparedStatement statement= conexion.prepareStatement(sqlInsert);
        statement.executeUpdate();
        
        statement.close();
        conexion.close();
    }//insertarCategoria
    
    public Categoria getCategoria(int codCategoria) throws SQLException{
        Categoria categoria= new Categoria();
        String sqlSelect="SELECT cod_categoria,nombre_categoria "
                       + "FROM Categoria "
                       + "WHERE cod_categoria= "+codCategoria;
        Connection conexion= this.getConnection();
        
        PreparedStatement statement= conexion.prepareStatement(sqlSelect);
        ResultSet resultSet=statement.executeQuery();
        
        if (resultSet.next()) {            
            categoria.setCodCategoria(resultSet.getInt("cod_categoria"));
            categoria.setNombreCategoria(resultSet.getString("nombre_categoria"));
        }//if
        statement.close();
        conexion.close();
        return categoria;
    }//getCategoria
    
    public LinkedList<Categoria> getCategorias() throws SQLException{
        LinkedList<Categoria> categorias=new LinkedList<Categoria>();
        String sqlSelect="SELECT cod_categoria,nombre_categoria "
                       + "FROM Categoria";
        Connection conexion= this.getConnection();
        PreparedStatement statement= conexion.prepareStatement(sqlSelect);
        
        ResultSet resultSet=statement.executeQuery();
        while (resultSet.next()) {            
            Categoria categoriaActual= new Categoria();
            categoriaActual.setCodCategoria(resultSet.getInt("cod_categoria"));
            categoriaActual.setNombreCategoria(resultSet.getString("nombre_categoria"));
            categorias.addLast(categoriaActual);
        }//while
        statement.close();
        conexion.close();
        return categorias;
    }//getCategorias
    public void modificarCategoria(Categoria categoria) throws SQLException{
        String sqlUpdate="UPDATE Categoria "
                       + "SET nombre_categoria=? "
                       + "WHERE cod_categoria = "+categoria.getCodCategoria();
        Connection conexion= this.getConnection();
        PreparedStatement statement= conexion.prepareStatement(sqlUpdate);
        statement.setString(1, categoria.getNombreCategoria());
        statement.executeUpdate();
        
        statement.close();
        conexion.close();
    }//modificarCategoria
    public void eliminarCategoria(int codCategoria) throws SQLException{
        String sqlDelete="DELETE FROM Categoria "
                       + "WHERE cod_categoria="+codCategoria;
        Connection conexion= this.getConnection();
        PreparedStatement statement= conexion.prepareStatement(sqlDelete);
        statement.executeUpdate();
        
        statement.close();
        conexion.close();
    }//eliminarCategoria
    
}
